Conventional telecommunication systems typically include various hardware platforms and software to carry out its operations. Software is, and continues to, provide for a significant portion of the functionality associated with such systems. Conventional telecommunications systems utilize software that is constructed using structured programming principles, such as C language, to produce large monolithic applications. Those applications typically include thousands of loosely organized lines of executable code.
Conventional telecommunications systems are inflexible and difficult to adapt due to their use of conventional software. Different programming languages and operating systems are often used by different conventional software applications. As a result, it is difficult for one application to use the operations and functions provided by another application. In other words, there is an inadequate ability for applications to effectively communicate and cooperate in a collective manner. Similar operations and functions are therefore duplicated in different applications to avoid the obstacles encountered in accessing another application's operations.
Further, even within a given application, functionality is limited by the monolithic and complex nature of applications, which includes multiple interdependent lines of code. That is, there is a large degree of interdependence among executable code found in conventional applications, i.e., specific functions are intermixed throughout the code and not isolated. As a result, redesigning a particular area of code often leads to undesirable effects on other areas of code. This severely inhibits the ability to modify, by adding new functions or removing or adapting existing functions, conventional software code. It also requires a significant collaborative effort among designers. Significant expenditures of time and resources are thus incurred in designing and redesigning software code found in conventional telecommunications systems. Numerous other undesirable consequences result from the use of conventional software, such as the inability to interface with other systems or devices, an inability to provide a modular system, and difficulties in incorporating newly developed or third party software applications within a system.